#ifndef EDITORCORE_SELECTTOOL_H
#define EDITORCORE_SELECTTOOL_H

#include "Input/EventArgs/MouseButtonEventArgs.h"
#include "Input/EventArgs/MouseMoveEventArgs.h"
#include "Input/EventArgs/MouseScrollEventArgs.h"
#include "Input/EventArgs/KeyEventArgs.h"

#include "EditorCore/Tools/ITool.h"
#include "EditorCore/Actions/IAction.h"
#include "EditorCore/IDocument.h"

namespace editor_core {

	class SelectTool : public ITool
	{
	public:
		SelectTool( IDocument* document );
		virtual ~SelectTool();

		virtual IAction* Activate();
		virtual IAction* Deactivate();
		virtual IAction* ProcessMouseButtonPress( input::MouseButtonEventArgs* mouseButtonEventArgs );
		virtual IAction* ProcessMouseButtonRelease( input::MouseButtonEventArgs* mouseButtonEventArgs );
		virtual IAction* ProcessMouseMove( input::MouseMoveEventArgs* mouseMoveEventArgs );
		virtual IAction* ProcessMouseScroll( input::MouseScrollEventArgs* mouseScrollEventArgs );
		virtual IAction* ProcessKeyPress( input::KeyEventArgs* keyEventArgs );
		virtual IAction* ProcessKeyRelease( input::KeyEventArgs* keyEventArgs );

	private:
		IDocument* m_document;
	};
}

#endif
